/**
 * 封装dataTables，需选引入jqury、datatables
 * 使用方式：$(element).dataTables(options);
 * 
 * @author zsp
 * @date 2017-12-15
 */
;
(function($) {
	$.fn.extend({
		dataTables: function(options) {
			//datatables汉化
			var dict_datatables_ZH = {
				"zeroRecords": "没有找到记录",
				"infoEmpty": "无记录",
				"info": "显示第 _START_ 至 _END_ 项结果，共 _TOTAL_ 项", //_PAGE_/_PAGES_
				'loadingRecords': '加载中...',
				'processing': '查询中...',
				'search': '检索:',
				"paginate": {
					"first": "首页",
					"last": "尾页",
					"next": "下一页",
					"previous": "上一页"
				},
				'sInfoFiltered': '' // 源码(filtered from _MAX_ total entries)，提示不友好
			};

			options = $.extend({}, {
				queryForm: '#queryForm',
				selectBtn: "#selectBtn",
				ajaxUrl: '',
				pageSize: 10,
				columns: [],
				columnDefs: [],
				drawCallback: function() {}
			}, options || {});


			if (!options.ajaxUrl) {
				console.error("please set url of upload ajax ！");
				return;
			}

			var dataTable = $(this).DataTable({
				"bFilter": false, // 关闭搜索栏
				"bSort": false, // 关闭排序
				"bLengthChange": false, // 用户不可改变每页显示数量
				"processing": true, // 以指定当正在处理数据的时候，是否显示“正在处理”这个提示信息
				"bServerSide": true, // 开启服务器模式
				"retrieve": true, // 用于指明当执行dataTable绑定时，是否返回DataTable对象
				"iDisplayLength": options.pageSize, // 每页显示行数
				"autoWidth": false, // 使表格根据外部宽度自动拉伸，使用时不能加"scrollX": true
				"language": dict_datatables_ZH, // 汉化分页工具栏,dict_datatables_ZH是UED全局提供的常量
				"ajax": {
					"url": options.ajaxUrl, // 后台请求路径
					"type": "POST", // 请求方式
					"data": function(data) {
						data.pageNo = (data.start / data.length) + 1; // 向后台传递当前页
						data.pageSize = data.length; // 向后台传递每页的行数
						data = $.extend(data, $(options.queryForm).serializeJson());
					}
				},
				"columns": options.columns,
				"columnDefs": options.columnDefs,
				"drawCallback": options.drawCallback
			});

			//监听查询按钮单击事件
			$(options.selectBtn).click(function() {
				dataTable.draw();
			});

			return dataTable;

		}

	});
})(jQuery);